package com.ticket.system.domain.vo;

import com.ticket.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@ApiModel("退款单扩展对象")
public class RefundOrderVo implements Serializable {
    private static final long serialVersionUID = -64757122210615988L;
    @ApiModelProperty(value="订单编号",dataType = "string")
    private String orderNo;
    @ApiModelProperty(value="创建订单用户姓名",dataType = "string")
    private String userName;
    @ApiModelProperty(value="创建订单用户联系方式",dataType = "string")
    private String userContact;
    @ApiModelProperty(value="退票数量",dataType = "int")
    private Integer refundTicketNumber;
    private Long id;

    /** 订单id（关联yanchu_order表主键） */
    @Excel(name = "订单id", readConverterExp = "关=联yanchu_order表主键")
    @ApiModelProperty(value = "订单编码",required = true)
    @NotNull(message = "订单id不可以为空")
    private Long orderId;

    /** 售后类型 1：退票退款; */
    @Excel(name = "售后类型 1：退票退款;")
    private Integer refundType;

    /** 退款标识 1：整单退款；2：部分退款; */
    @Excel(name = "退款标识 1：整单退款；2：部分退款;")
    @ApiModelProperty(value = "退款标识 1：整单退款；2：部分退款;")
    private Integer refundFlag;

    /** 退款单单号 */
    @Excel(name = "退款单单号")
    @ApiModelProperty(value = "退款单单号")
    private String refundNo;

    /** 退款单状态 1：退款中；2：已退款；3：被驳回； */
    @Excel(name = "退款单状态 1：退款中；2：已退款；3：被驳回；")
    @ApiModelProperty(value = "退款单状态 1：退款中；2：已退款；3：被驳回")
    private Integer refundStatus;

    /** 退款总金额 */
    @Excel(name = "退款总金额")
    @ApiModelProperty(value = "退款总金额")
    @NotNull(message = "退款总金额不可以为空")
    private BigDecimal refundTotalMoney;

    /** 退款原因 */
    @Excel(name = "退款原因")
    @ApiModelProperty(value = "退款原因",required = true)
    @NotNull(message = "退款原因不可以为空")
    private String refundReason;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long creator;

    /** 审批人 */
    @Excel(name = "审批人")
    private Long approver;

    private String approverName;

    /** 审批时间（退款时间） */
    @Excel(name = "审批时间", readConverterExp = "退=款时间")
    private Date approvalTime;

    @ApiModelProperty(value = "订单详情编码，逗号分隔",required = true)
    @NotNull(message = "订单详情编码不可以为空")
    private String detailIds;

    @ApiModelProperty(value="操作人")
    private String createBy;
    @ApiModelProperty(value="创建时间")
    private Date createTime;

    private String hallName;
    @ApiModelProperty(value = "观演卡退款金额")
    private BigDecimal cardAmt;
    @ApiModelProperty(value = "余额退款金额")
    private BigDecimal balanceAmt;
    @ApiModelProperty(value = "微信退款金额")
    private BigDecimal wechatAmt;

    //用户留下的联系人
    private String contactName;
    //用户留下的联系人手机
    private String contactPhone;

    private String performName;

    private String sessionName;

    private List<ExcelOrderDetailVo> excelOrderDetailVoList;

    public String getApproverName() {
        return approverName;
    }

    public void setApproverName(String approverName) {
        this.approverName = approverName;
    }

    public String getHallName() {
        return hallName;
    }

    public void setHallName(String hallName) {
        this.hallName = hallName;
    }

    public List<ExcelOrderDetailVo> getExcelOrderDetailVoList() {
        return excelOrderDetailVoList;
    }

    public void setExcelOrderDetailVoList(List<ExcelOrderDetailVo> excelOrderDetailVoList) {
        this.excelOrderDetailVoList = excelOrderDetailVoList;
    }

    public String getPerformName() {
        return performName;
    }

    public void setPerformName(String performName) {
        this.performName = performName;
    }

    public String getSessionName() {
        return sessionName;
    }

    public void setSessionName(String sessionName) {
        this.sessionName = sessionName;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public BigDecimal getCardAmt() {
        return cardAmt;
    }

    public void setCardAmt(BigDecimal cardAmt) {
        this.cardAmt = cardAmt;
    }

    public BigDecimal getBalanceAmt() {
        return balanceAmt;
    }

    public void setBalanceAmt(BigDecimal balanceAmt) {
        this.balanceAmt = balanceAmt;
    }

    public BigDecimal getWechatAmt() {
        return wechatAmt;
    }

    public void setWechatAmt(BigDecimal wechatAmt) {
        this.wechatAmt = wechatAmt;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }



    private List<OrderDetailVo> detailVoList;

    public List<OrderDetailVo> getDetailVoList() {
        return detailVoList;
    }

    public void setDetailVoList(List<OrderDetailVo> detailVoList) {
        this.detailVoList = detailVoList;
    }

    public String getDetailIds() {
        return detailIds;
    }

    public void setDetailIds(String detailIds) {
        this.detailIds = detailIds;
    }


    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId()
    {
        return orderId;
    }
    public void setRefundType(Integer refundType)
    {
        this.refundType = refundType;
    }

    public Integer getRefundType()
    {
        return refundType;
    }
    public void setRefundFlag(Integer refundFlag)
    {
        this.refundFlag = refundFlag;
    }

    public Integer getRefundFlag()
    {
        return refundFlag;
    }
    public void setRefundNo(String refundNo)
    {
        this.refundNo = refundNo;
    }

    public String getRefundNo()
    {
        return refundNo;
    }
    public void setRefundStatus(Integer refundStatus)
    {
        this.refundStatus = refundStatus;
    }

    public Integer getRefundStatus()
    {
        return refundStatus;
    }
    public void setRefundTotalMoney(BigDecimal refundTotalMoney)
    {
        this.refundTotalMoney = refundTotalMoney;
    }

    public BigDecimal getRefundTotalMoney()
    {
        return refundTotalMoney;
    }
    public void setRefundReason(String refundReason)
    {
        this.refundReason = refundReason;
    }

    public String getRefundReason()
    {
        return refundReason;
    }
    public void setCreator(Long creator)
    {
        this.creator = creator;
    }

    public Long getCreator()
    {
        return creator;
    }
    public void setApprover(Long approver)
    {
        this.approver = approver;
    }

    public Long getApprover()
    {
        return approver;
    }
    public void setApprovalTime(Date approvalTime)
    {
        this.approvalTime = approvalTime;
    }

    public Date getApprovalTime()
    {
        return approvalTime;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }


    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserContact() {
        return userContact;
    }

    public void setUserContact(String userContact) {
        this.userContact = userContact;
    }

    public Integer getRefundTicketNumber() {
        return refundTicketNumber;
    }

    public void setRefundTicketNumber(Integer refundTicketNumber) {
        this.refundTicketNumber = refundTicketNumber;
    }
}
